package interviewQuestions;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 找出数组1中存在 但是数组2中不存在的数字
 *
 * */
public class DiffOfarray {
    public static void fun(int[] arr1, int[] arr2){
        int len1 = arr1.length;
        int len2 = arr2.length;
        int i = 0;
        int j = 0;
        List<Integer> rs = new ArrayList<>();

        // 最开始进行排序
        Arrays.sort(arr1);
        Arrays.sort(arr2);
        while(i < len1 || j < len2){
            // 如果 arr1 == arr2 两个数组的指针都往后移动
            if(arr1[i] == arr2[j]){
                i++;
                j++;
                continue;
            }

            // 如果arr1有重复的话，我们直接将指针往后移动,干掉第一个
            if(arr1[i] == arr1[i+1]){
                i++;
            }
            // 如果arr1 比 arr2 小 就保存这个数，并且指针往后移动
            if(arr1[i] < arr2[j]){
                rs.add(arr1[i]);
                i++;
            }else

            // 如果arr2 比较小 指针直接往后移
            if(arr2[j] < arr1[i]){
                j++;
            }
        }

        for (int r:rs
             ) {
            System.out.println(r);
        }
    }

    public static void main(String[] args) {
        fun(new int[]{1,2,5,7,9},new int[]{1,3,3,3,4,7,9});
    }

}
